লিনিয়ার ডেটা স্ট্রাকচার: লিংকড লিস্ট, স্ট্যাক, কিউ

Computer Science - কম্পিউটার সায়েন্স বেসিক (Basics of Computers Science) - ডেটা স্ট্রাকচার
276

লিনিয়ার ডেটা স্ট্রাকচার হল ডেটা সংগঠনের পদ্ধতি, যেখানে ডেটা উপাদানগুলি একটি নির্দিষ্ট লিনিয়ার অর্ডারে সাজানো হয়। লিনিয়ার ডেটা স্ট্রাকচারে তিনটি সাধারণ ধরণের কাঠামো হল লিংকড লিস্ট, স্ট্যাক, এবং কিউ। নিচে এই তিনটির সম্পর্কে বিস্তারিত আলোচনা করা হলো।

১. লিংকড লিস্ট (Linked List)

সংজ্ঞা:

লিংকড লিস্ট একটি ডেটা স্ট্রাকচার যা ডেটা উপাদানগুলিকে একটি সিরিজে সংযুক্ত করে। প্রতিটি উপাদান একটি নোড হিসেবে কাজ করে এবং পরবর্তী নোডের ঠিকানা ধারণ করে।

বৈশিষ্ট্য:

  • ডায়নামিক মেমরি: লিংকড লিস্টে ডেটা বাড়ানো বা কমানোর সময় মেমরি স্থানান্তরের প্রয়োজন হয় না, বরং নতুন নোড যোগ বা অপসারণ করা যায়।
  • নোড: প্রতিটি নোডে দুটি অংশ থাকে: একটি ডেটা অংশ এবং একটি পয়েন্টার অংশ (পরবর্তী নোডের ঠিকানা)।
  • প্রকারভেদ: একক লিংকড লিস্ট (Single Linked List), দ্বি-লিংকড লিস্ট (Doubly Linked List), এবং চক্রাকার লিংকড লিস্ট (Circular Linked List)।

ব্যবহার:

  • ডাইনামিক ডেটা সংগঠন, যেমন সিস্টেমের টাস্ক ম্যানেজমেন্ট এবং ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়।

উদাহরণ:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

২. স্ট্যাক (Stack)

সংজ্ঞা:

স্ট্যাক হল একটি ডেটা স্ট্রাকচার যা LIFO (Last In, First Out) প্রিন্সিপাল অনুসরণ করে। এর মানে হল, শেষ উপাদানটি প্রথমে বের করা হয়।

বৈশিষ্ট্য:

  • প্রবেশ ও প্রস্থান: স্ট্যাকে ডেটা প্রবেশ করানোর জন্য push() ফাংশন এবং বের করার জন্য pop() ফাংশন ব্যবহার করা হয়।
  • সীমাবদ্ধতা: স্ট্যাকের মধ্যে প্রবেশ এবং প্রস্থান কেবল শীর্ষে (top) হতে পারে।
  • অস্থায়ী: এটি সাধারণত অস্থায়ী তথ্য সংরক্ষণের জন্য ব্যবহৃত হয়।

ব্যবহার:

  • ফাংশন কলের ট্র্যাকিং, অপারেটরের অগ্রাধিকার, এবং ব্রাউজারের ব্যাক ট্র্যাকিং।

উদাহরণ:

class Stack:
    def __init__(self):
        self.items = []
    
    def push(self, item):
        self.items.append(item)
    
    def pop(self):
        return self.items.pop() if not self.is_empty() else None
    
    def is_empty(self):
        return len(self.items) == 0

৩. কিউ (Queue)

সংজ্ঞা:

কিউ হল একটি ডেটা স্ট্রাকচার যা FIFO (First In, First Out) প্রিন্সিপাল অনুসরণ করে। এর মানে হল, প্রথমে প্রবেশ করা উপাদানটি প্রথমে বের করা হয়।

বৈশিষ্ট্য:

  • প্রবেশ ও প্রস্থান: কিউতে ডেটা প্রবেশ করানোর জন্য enqueue() ফাংশন এবং বের করার জন্য dequeue() ফাংশন ব্যবহার করা হয়।
  • সীমাবদ্ধতা: কিউতে প্রবেশ করতে হয় পিছনের দিকে এবং বের করতে হয় সামনে থেকে।
  • অস্থায়ী: সাধারণত অস্থায়ী তথ্যের জন্য ব্যবহৃত হয়, যেমন প্রক্রিয়া ব্যবস্থাপনা।

ব্যবহার:

  • প্রিন্টার কিউ, CPU টাস্ক সিডিউলিং, এবং গ্রাহক পরিষেবায় ব্যবহার করা হয়।

উদাহরণ:

class Queue:
    def __init__(self):
        self.items = []
    
    def enqueue(self, item):
        self.items.insert(0, item)
    
    def dequeue(self):
        return self.items.pop() if not self.is_empty() else None
    
    def is_empty(self):
        return len(self.items) == 0

উপসংহার

লিনিয়ার ডেটা স্ট্রাকচারগুলি (লিংকড লিস্ট, স্ট্যাক, এবং কিউ) তথ্য সংগঠনের এবং পরিচালনার জন্য মৌলিক এবং গুরুত্বপূর্ণ উপায়। এগুলি বিভিন্ন ধরনের ডেটা সংরক্ষণ, প্রক্রিয়া, এবং ব্যবস্থাপনার জন্য ব্যবহার করা হয়। সঠিক ডেটা স্ট্রাকচার নির্বাচন করা ডেটা ব্যবস্থাপনার কার্যকারিতা এবং কার্যকারিতা বাড়ায়।

Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...